.com
Hosted by:
Unit testing expertise at your fingertips!
Home | Discuss | Lists

Data Access Object

The book has now been published and the content of this chapter has likely changed substanstially.

Also known as: Data Access Layer


Use a Data Access Object (DAO) to abstract and encapsulate all access to the data source. The DAO manages the connection with the data source to obtain and store data.

The DAO implements the access mechanism required to work with the data source. The data source could be a persistent store like an RDBMS, an external service like a B2B exchange, a repository like an LDAP database, or a business service accessed via CORBA Internet Inter-ORB Protocol (IIOP) or low-level sockets. The business component that relies on the DAO uses the simpler interface exposed by the DAO for its clients. The DAO completely hides the data source implementation details from its clients. Because the interface exposed by the DAO to clients does not change when the underlying data source implementation changes, this pattern allows the DAO to adapt to different storage schemes without affecting its clients or business components. Essentially, the DAO acts as an adapter between the component and the data source.

From [CJ2EEP]: http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html



Page generated at Wed Feb 09 16:39:04 +1100 2011

Copyright © 2003-2008 Gerard Meszaros all rights reserved

All Categories
Introductory Narratives
Web Site Instructions
Code Refactorings
Database Patterns
DfT Patterns
External Patterns
Fixture Setup Patterns
Fixture Teardown Patterns
Front Matter
Glossary
Misc
References
Result Verification Patterns
Sidebars
Terminology
Test Double Patterns
Test Organization
Test Refactorings
Test Smells
Test Strategy
Tools
Value Patterns
XUnit Basics
xUnit Members
All "External Patterns"
Abstract Factory
Adapter
Command
Comparator
Complete Constructor Method
Composite
Data Access Object
--Data Access Layer
Data Transfer Object
Decorator
Domain Model
Facade
Factory Method
Foreign Method
Guard Clause
Hexagonal Architecture
Integration Build
Intent Revealing Name
Interpreter
Layered Architecture
Lazy Initialization
Marker Interface
Noun Phrase Name
Null Object
Observer
Pluggable Behavior
Private Workspace
Prototype
Registry
Remote Facade
Remote Proxy
Repository
Self-Call
Service Facade
Service Layer
Session Facade
Singleton
Skippable Sections
Smoke Test
State
Strategy
Template Method
Thread-Specific Storage
Transaction Script
Ubiquitous Language
Virtual Clock